// src/worker/calculation.worker.js
// 接收主线程数据，执行计算任务
self.onmessage = (e) => {
    const { task, data } = e.data;
    let result;

    switch (task) {
        case 'psd-calculation':
            // 模拟 PSD 计算（替换为实际算法）
            result = performPSDCalculation(data);
            break;
        case 'sleep-stage':
            result = calculateSleepStage(data);
            break;
        default:
            result = null;
    }

    // 返回结果给主线程
    self.postMessage({ task, result });
};

// 示例：PSD 计算函数（需替换为实际逻辑）
function performPSDCalculation(eegData) {
    // 这里编写复杂的 PSD 计算逻辑（如 FFT 处理）
    // 模拟耗时操作
    return eegData.map((v) => v ** 2).reduce((sum) => sum, 0) / eegData.length;
}

// 示例：睡眠阶段计算函数
function calculateSleepStage(eegData) {
    // 模拟逻辑
    return Math.floor(Math.random() * 4) + 1; // 返回 1-4 的随机阶段
  }